//=============================================================================
//===	Copyright (C) 2001-2005 Food and Agriculture Organization of the
//===	United Nations (FAO-UN), United Nations World Food Programme (WFP)
//===	and United Nations Environment Programme (UNEP)
//===
//===	This program is free software; you can redistribute it and/or modify
//===	it under the terms of the GNU General Public License as published by
//===	the Free Software Foundation; either version 2 of the License, or (at
//===	your option) any later version.
//===
//===	This program is distributed in the hope that it will be useful, but
//===	WITHOUT ANY WARRANTY; without even the implied warranty of
//===	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
//===	General Public License for more details.
//===
//===	You should have received a copy of the GNU General Public License
//===	along with this program; if not, write to the Free Software
//===	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//===
//===	Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2,
//===	Rome - Italy. email: GeoNetwork@fao.org
//==============================================================================

package org.fao.geonet.services.param.branch;

import org.jdom.*;

import jeeves.constants.*;
import jeeves.interfaces.*;
import jeeves.resources.dbms.*;
import jeeves.server.*;
import jeeves.server.context.*;

import org.fao.geonet.constants.*;

//=============================================================================

/**
 * Retrieves a particular user
 */

public class Get implements Service {
	// --------------------------------------------------------------------------
	// ---
	// --- Init
	// ---
	// --------------------------------------------------------------------------

	public void init(String appPath, ServiceConfig params) throws Exception {
	
	}

	// --------------------------------------------------------------------------
	// ---
	// --- Service
	// ---
	// --------------------------------------------------------------------------
	public Element exec(Element params, ServiceContext context)
			throws Exception {
		String id = params.getChildText(Params.ID);
		String id_organization = params.getChildText(Params.PARENT_ID);
		
		if (id == null)
			if (id_organization == null)
				throw new Exception(
						"La sucursal no tiene una organizacion asociada.");
			else {
				Element parentId = new Element("id_organization");
				parentId.setText(id_organization);
				return parentId;
			}
		Dbms dbms = (Dbms) context.getResourceManager()
				.open(Geonet.Res.MAIN_DB);
		Element elEntityMaster = dbms
				.select("SELECT * FROM organization_branch WHERE id=" + id
						+ " AND id_organization = " + id_organization);
		Element elDetail = new Element( Geonet.Elem.BRANCH_DETAIL );
		elDetail.addContent( dbms.select("SELECT * FROM organization_branch_detail WHERE id_organization_branch = " + id + " ORDER BY detail_type ASC" ) );
		elEntityMaster.addContent(elDetail);
		
		Element elDetail2 = new Element( Geonet.Elem.AREA );
		elDetail2.addContent( dbms.select("SELECT * FROM area WHERE id_organization_branch = " + id + " ORDER BY name ASC" ) );
		elEntityMaster.addContent(elDetail2);

		return elEntityMaster;
	}
}

// =============================================================================

